Bug 554453 – "typeahead find" widget of GtkTreeView appears on wrong
authorMatthias Clasen <mclasen@redhat.com>
Sun, 30 Nov 2008 06:05:23 +0000 (06:05 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Sun, 30 Nov 2008 06:05:23 +0000 (06:05 +0000)
2008-11-29  Matthias Clasen  <mclasen@redhat.com>

        Bug 554453 – "typeahead find" widget of GtkTreeView appears on
        wrong monitor in a multi-head environment

        * gtk/gtktreeview.c (gtk_tree_view_ensure_interactive_directory):
        Make sure the typeahead window follows screen changes of the
        treeview. Noticed by Rainer Stransky

svn path=/trunk/; revision=21835

ChangeLog
gtk/gtktreeview.c

index ebe98eff6d4b735c5c031ccea5bd7617dd13fcfe..2da18d3a9b3b4e8651ea36423f6a0a786b6f4cda 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-11-29  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 554453 – "typeahead find" widget of GtkTreeView appears on 
+       wrong monitor in a multi-head environment
+
+       * gtk/gtktreeview.c (gtk_tree_view_ensure_interactive_directory):
+       Make sure the typeahead window follows screen changes of the
+       treeview. Noticed by Rainer Stransky
+
 2008-11-30  Christian Dywan  <christian@imendio.com>
 
        Bug 559622 – GdkDevice test segfaults
index 451500b39f1aee2653caf1a09263ad0b3c8ffa79..bff4ae851b91b0b8c5e1dd90607dc66f9366f116 100644 (file)
@@ -10297,11 +10297,13 @@ static void
 gtk_tree_view_ensure_interactive_directory (GtkTreeView *tree_view)
 {
   GtkWidget *frame, *vbox, *toplevel;
+  GdkScreen *screen;
 
   if (tree_view->priv->search_custom_entry_set)
     return;
 
   toplevel = gtk_widget_get_toplevel (GTK_WIDGET (tree_view));
+  screen = gtk_widget_get_screen (tree_view);
 
    if (tree_view->priv->search_window != NULL)
      {
@@ -10311,10 +10313,12 @@ gtk_tree_view_ensure_interactive_directory (GtkTreeView *tree_view)
        else if (GTK_WINDOW (tree_view->priv->search_window)->group)
         gtk_window_group_remove_window (GTK_WINDOW (tree_view->priv->search_window)->group,
                                         GTK_WINDOW (tree_view->priv->search_window));
+       gtk_window_set_screen (GTK_WINDOW (tree_view->priv->search_window), screen);
        return;
      }
    
   tree_view->priv->search_window = gtk_window_new (GTK_WINDOW_POPUP);
+  gtk_window_set_screen (GTK_WINDOW (tree_view->priv->search_window), screen);
 
   if (GTK_WINDOW (toplevel)->group)
     gtk_window_group_add_window (GTK_WINDOW (toplevel)->group,